package com.igeek.homework;

import java.util.Arrays;
import java.util.Scanner;

/**
 *
 * 2.键盘接受一个字符串，多个单词使用#分开，编写一个方法，能将该规则类型的字符串变为Camel命名法的变量名

    my#name#is#tom

    result:myNameIsTom
 */
public class Demo01 {

    public static void main(String[] args) {

        Demo01 demo01 = new Demo01();
        demo01.splitMethod();
    }
    public void splitMethod(){

        //1.用户输入一个字符串
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一串字符，并用#分割");
        String str = scanner.next();


        //2.使用split方法，将字符串的#进行分割
        if("".equals(str) || str.isEmpty()){
            System.out.println("输入有误，请重新输入");
            splitMethod();
        }else {
            String[] strs = str.split("#");

            String[] newStrs = new String[strs.length];

            //第一个元素直接放到新字符串数组中，不需要处理
            newStrs[0] = strs[0];

            //3.针对数组中的每一个字符串进行处理
            for(int i = 1;i<strs.length;i++){

                //还可以使用正则对字符串进行匹配
                if(!strs[i].isEmpty() && strs[i].matches("^[a-zA-Z]+$")){

                    //最好要判断一下，首字母确实是一个小写字母
                    if(strs[i].charAt(0) >= 'a' && strs[i].charAt(0) <= 'z'){

                        //4.从数组的第二个元素开始，首字母进行处理 char ASCII A 65 a 97
                        char first = (char)(strs[i].charAt(0) - 32);

                        //5.对每个单词进行拼接 N + ame
                        String newWord = String.valueOf(first) + strs[i].substring(1);
                        newStrs[i] = newWord;
                    }else{
                        //元素的首字母本身就大写
                        newStrs[i] = strs[i];
                    }
                }
            }

            //把最终结果进行输入
            System.out.println(Arrays.toString(newStrs));

        }

    }
}
